package com.lzh.lzhframework.service;

import com.lzh.lzhframework.domain.vo.dashboard.QueryBlogContributeByYearVo;
import com.lzh.lzhframework.domain.vo.dashboard.QueryVisitByWeekVo;

import java.util.List;
import java.util.Map;

/**
 * @Author luzhiheng
 * @Date 2023/11/28 16:50
 */
public interface DashboardService {

    /**
     * 获取当日IP数
     *
     * @return
     */
    Long queryTodayIpNum();

    /**
     * 通过博客分类获取博客数目
     *
     * @return
     */
    List<Map<String, Object>> queryBlogNumByCategory();

    /**
     * 通过博客标签获取博客数目
     *
     * @return
     */
    List<Map<String, Object>> queryBlogNumByTag();

    /**
     * 通过分类获取博客访问量
     *
     * @return
     */
    List<Map<String, Object>> queryBlogViewNumByCategory();

    /**
     * 统计七天内独立用户数(UV) 通过IP统计
     *
     * @return
     */
    List<Map<String, Object>> queryUVByWeek();

    /**
     * 统计最近七天内的访问量(PV)
     *
     * @return
     */
    List<Map<String, Object>> queryPVByWeek();

    /**
     * 统计最近七天的pv和uv
     * @return
     */
    QueryVisitByWeekVo queryVisitByWeek();

    /**
     * 获取一年内的文章贡献数
     * @return
     */
    QueryBlogContributeByYearVo queryBlogContributeCount();
}
